package factoryMethodPattern;

import java.util.ArrayList;

public class Client {

    public static void main(String[] args) {
        /**
         * 抽象产品 eg. Iterator \ PhoneProduct
         * 具体产品 eg. ArrayList.Itr \ HuaweiPhone
         *
         * 抽象工厂 eg. Iterable \   ProductFactory
         * 具体工厂 eg. ArrayList \ HuaweiFactory
         *
         * 在抽象产品和抽象工厂中，已经定义了创建类型
         * 在具体的产品和具体的工厂中，对该定义实现。主要是依赖关系。通过在方法中的依赖到另一个类
         */

        ProductFactory huaweiFactory = new HuaweiFactory();
        PhoneProduct phone = huaweiFactory.createPhone();
        phone.start();
        phone.callUp();
        phone.shutdown();


    }
}
